Skip to content

fix: audit fixes#1708

Merged
elhajin merged 5 commits intorelease-dev/duration-vaultsfrom
duration-vault/audit-fixes
Feb 5, 2026
Merged

fix: audit fixes#1708
elhajin merged 5 commits intorelease-dev/duration-vaultsfrom
duration-vault/audit-fixes

Conversation

@eigenmikem
Copy link
Copy Markdown
Collaborator

Motivation:

Explain here the context, and why you're making that change. What is the problem you're trying to solve.

Modifications:

Describe the modifications you've done.

Result:

After your change, what will change.

@elhajin
Copy link
Copy Markdown
Contributor

elhajin commented Jan 31, 2026

@claude check the fixes and make sure that no new bugs are introduced

@Layr-Labs Layr-Labs deleted a comment from claude bot Feb 3, 2026
@Layr-Labs Layr-Labs deleted a comment from claude bot Feb 3, 2026
@elhajin elhajin merged commit f37f795 into release-dev/duration-vaults Feb 5, 2026
9 checks passed
@elhajin elhajin deleted the duration-vault/audit-fixes branch February 5, 2026 17:22
eigenmikem added a commit that referenced this pull request Feb 13, 2026
**Motivation:**

Address findings from the Certora security audit of the Duration Vaults implementation.

**Modifications:**

### Medium Severity

- **M-01 Fix**: Added `setRewardsClaimer(address claimer)` to designate a claimer for operator-attributed rewards, ensuring if any rewards accrued during split activation delay  or via a new rewards type  can be claimed
- **M-02 Fix**: Implemented retry mechanism in `markMatured()` and `advanceToWithdrawals()` - both now check if vault is in WITHDRAWALS state and re-attempt operator cleanup (`_deallocateAll()` and `_deregisterFromOperatorSet()`) if needed
- **M-03 Fix**: Added `updateDelegationApprover(address newDelegationApprover)` calling `DelegationManager.modifyOperatorDetails()` for delegation approver updates
- **M-04 Fix**: Same retry mechanism as M-02 allows subsequent calls to complete cleanup if initial call was gas-griefed

### Informational Severity

- **I-02 Fix**: Added `DeallocateAttempted(bool success)` and `DeregisterAttempted(bool success)` events for off-chain monitoring
- **I-03 Fix**: changed to `DepositExceedsMaxPerDeposit()` error for clearer messaging in `beforeAddShares()`
- **I-04 Fix**: Added strategy support check in `lock()` via `AllocationManager.getStrategiesInOperatorSet()`, reverts with `StrategyNotSupportedByOperatorSet()` if unsupported
- **I-05 Fix**: Added `@param arbitrator` NatSpec to VaultConfig struct
- **I-06 Fix**: Changed `operatorSetRegistered()` to query `AllocationManager.isMemberOfOperatorSet()` directly


**Result:**

Improved protocol correctness and security for Duration Vaults.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants